package com.example.wendao.model.service;

import androidx.paging.DataSource;

import com.example.wendao.model.db.dao.ForumDao;
import com.example.wendao.model.db.database.AppDatabase;
import com.example.wendao.model.entity.Forum;

public class ForumService {


    private ForumDao forumDao;

    public ForumService() {
        forumDao= AppDatabase.getDatabases().getForumDao();
    }

    //插入帖子（Forum 帖子）   无返回值
    public void insertForum(Forum forum) {
            forumDao.insertForum(forum);
        }

        //按照帖子id查找帖子
        public Forum findForumById(int forumid){
            return forumDao.findForumById(forumid);
        }

        //查找所有帖子（无参数）  返回查找到的所有帖子（pagedlist）
        public DataSource.Factory<Integer, Forum> findByAllForum() {
            return forumDao.findByAllForum();
        }

        //根据多个帖子id查找帖子（ String  sql）   返回查找到的帖子列表(Forums)
        public DataSource.Factory<Integer, Forum>  findSomeForumsByForumIds(String sql) {
            return forumDao.findSomeForumsByForumIds(sql);
        }


    //按照用户id搜索其名下帖子
    public DataSource.Factory<Integer, Forum> findAllForumByForumAuthorId(int forumauthorid){
            return forumDao.findAllForumByForumAuthorId(forumauthorid);
    }

        //按照用户id搜索其名下帖子
    public Forum[] findAllForumByForumAuthorIdInArray(int forumauthorid){
        return forumDao.findAllForumByForumAuthorIdInArray(forumauthorid);
    }

    public Forum findLatestForum(){
            return forumDao.findLatestForum();
    }

    //按照标签id搜索帖子
    public DataSource.Factory<Integer, Forum> findAllForumByForumTagId(int forumtagid){
            return forumDao.findAllForumByForumTagId(forumtagid);
    }

    /*
        * param:标题
        * return:分页帖子列表的数据源工厂
        * */
        public DataSource.Factory<Integer, Forum> findForumByTitle(String title) {
            return forumDao.findForumByTitle(title);
        }


        /*
        * param:帖子
        * return:空
        * */
        public void updateForum(Forum... forum) {
            forumDao.updateForum(forum);
        }

    /*
     * param:帖子
     * return:空
     * */
        public void deleteForum(Forum... forums) {
            forumDao.deleteForum(forums);
        }

    public DataSource.Factory<Integer, Forum> findAllForumByTagId(int tagId) {
            return forumDao.findAllForumByTagId(tagId);
    }

}
